package com.resifind.www.dao;

import com.resifind.www.po.Client;
import com.resifind.www.po.Merchant;

import java.sql.Connection;
import java.util.List;

/**
 * @author 36069
 */
public interface BlacklistDao {

    /**
     * 查询黑名单是否存在
     *
     * @param clientId      客户id
     * @param merchantId    商家id
     * @param blacklistType 黑名单类型
     * @return 黑名单是否存在
     */
    boolean queryBlacklistExist(int clientId, int merchantId, String blacklistType);

    /**
     * 添加黑名单
     *
     * @param clientId      客户id
     * @param merchantId    商家id
     * @param blacklistType 黑名单类型
     * @param conn          数据库连接
     * @return 是否添加成功
     */
    boolean addBlacklist(int clientId, int merchantId, String blacklistType, Connection conn);

    /**
     * 客户删除其拉黑的商家
     *
     * @param clientId    客户id
     * @param merchantIds 商家id集合
     * @param conn        数据库连接
     * @return 是否删除成功
     */
    boolean deleteClientBlacklist(int clientId, List<Integer> merchantIds, Connection conn);

    /**
     * 商家删除其拉黑的客户
     *
     * @param merchantId 商家id
     * @param clientIds  客户id集合
     * @param conn       数据库连接
     * @return 是否删除成功
     */
    boolean deleteMerchantBlacklist(int merchantId, List<Integer> clientIds, Connection conn);

    /**
     * 查询指定客户拉黑的商家名单
     *
     * @param clientId 客户id
     * @return 商家黑名单集合
     */
    List<Merchant> queryBlackListByClientId(int clientId);

    /**
     * 查询指定商家拉黑的客户名单
     *
     * @param merchantId 商家id
     * @return 客户黑名单集合
     */
    List<Client> queryBlacklistByMerchantId(int merchantId);
}
